package com.py.credit.common;

import com.py.framework.core.log.ExceptionLogger;
import com.py.framework.core.redis.bis.JedisBisManage;
import com.py.framework.core.utils.SerializingUtil;
import redis.clients.jedis.Jedis;

/**
 * 用户信息缓存辅助类
 *
 * @author Leegern
 * @date 2018年4月16日
 */
public class LhjcUserCacheHelper {

    /**
     * 保存用户信息
     *
     * @param jdToken    用户令牌
     * @param userEntity 用户实体
     */
    public static void putUserCache(byte[] jdToken, byte[] userEntity) {
        putUserFieldCache(jdToken, SerializingUtil.serialize(LhjcConstants.LHJC_USER_KEY), userEntity);
    }

    /**
     * 保存用户属性信息
     *
     * @param jdToken 用户令牌
     * @param field   属性名
     * @param value   属性值
     */
    public static void putUserFieldCache(byte[] jdToken, byte[] field, byte[] value) {
        Jedis jedis = null;
        try {
            jedis = JedisBisManage.getJedis();
            jedis.hset(jdToken, field, value);
            jedis.expire(jdToken, LhjcConstants.LHJC_SESSION_EXPIRE);
        } catch (Exception e) {
            ExceptionLogger.error(e);
        } finally {
            if (null != jedis) {
                JedisBisManage.returnResource(jedis);
            }
        }
    }

    /**
     * 清空用户信息
     *
     * @param jdToken 用户令牌
     */
    public static void clearUserCache(byte[] jdToken) {
        Jedis jedis = null;
        try {
            jedis = JedisBisManage.getJedis();
            jedis.del(jdToken);
        } catch (Exception e) {
            ExceptionLogger.error(e);
        } finally {
            if (null != jedis) {
                JedisBisManage.returnResource(jedis);
            }
        }
    }
}